package com.yiyibook.mapper;

import com.yiyibook.entity.Book;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 图书 Mapper
 *
 * @author yi.wu
 * @date 2019-10-14
 */
@Mapper
public interface BookMapper {
    /**
      * 删除图书
      * @param bookId 图书id
      * @return int 删除的记录数
      * @author yi.wu 2019-10-14
      */
    int deleteByPrimaryKey(Integer bookId);

    /**
     * 添加图书
     * @param record 图书对象
     * @return int 添加的记录数
     * @author yi.wu 2019-10-14
     */
    int insert(Book record);

    /**
     * 添加图书 （允许有字段为null值）
     * @param record 图书对象
     * @return int 添加的记录数
     * @author yi.wu 2019-10-14
     */
    int insertSelective(Book record);

    /**
     * 查询图书 （通过图书id）
     * @param bookId 图书id
     * @return com.yiyibook.entity.Book 图书大类对象
     * @author yi.wu 2019-10-14
     */
    Book selectByPrimaryKey(Integer bookId);

    /**
     * 修改图书 （允许有字段为null值）
     * @param record 图书对象
     * @return int 修改的记录数
     * @author yi.wu 2019-10-14
     */
    int updateByPrimaryKeySelective(Book record);

    /**
     * 修改图书
     * @param record 图书对象
     * @return int 修改的记录数
     * @author yi.wu 2019-10-14
     */
    int updateByPrimaryKey(Book record);

    /**
      * 查询图书 （通过图书编号） 
      * @param bookNum 图书编号
      * @return com.yiyibook.entity.Book 图书对象
      * @author yi.wu 2019-10-14
      */
    Book selectByBookNum(String bookNum);
    
    /**
      * 查询图书 （通过图书小类）
      * @param smallStyleId 图书小类id
      * @return java.util.List<com.yiyibook.entity.Book> 图书对象的集合
      * @author yi.wu 2019-10-14
      */
    List<Book> selectByBookSmallStyleId(Integer smallStyleId);

    /**
     * 查询最后一个图书编号
     * @return com.yiyibook.entity.Book 图书对象
     * @author yi.wu 2019-10-14
     */
    Book selectLastNum();

    /**
     * 根据 book 对象中有值的属性 条件查询
     * @param book 图书对象
     * @return java.util.List<com.yiyibook.entity.Book> 图书对象的集合
     * @author yi.wu 2019-10-14
     */
    List<Book> selectByCondition(Book book);

    /**
     * 查询一周内 上架的新书
     * @return java.util.List<com.yiyibook.entity.Book> 图书对象的集合
     * @author yi.wu 2019-10-14
     */
    List<Book> selectNew();

    /**
     * 查询最受欢迎的图书 前10
     * @return java.util.List<com.yiyibook.entity.Book> 图书对象的集合
     * @author yi.wu 2019-10-14
     */
    List<Book> selectPop();

    /**
     * 功能描述:
     * 〈根据条件查询所有〉
     * @param book 图书信息
     * @return List
     * @author xun.gong@hand-china.com
     * @date 2019/10/31
     */
    List<Book> selectAllByCondition(Book book);
}
